package stylistcrm.core.services.order.service;

import stylistcrm.core.query.ResultPagerModel;
import stylistcrm.core.services.order.dto.OrderGoodsDto;
import stylistcrm.core.services.order.dto.PurchaseOrderDto;
import stylistcrm.core.services.order.dto.QueryOrderConditionDto;
import stylistcrm.core.services.order.exception.BizException;

import java.util.List;

/**
 * Created by cheny on 2016/8/25.
 */
public interface PurchaseOrderService {

    /**
     * 创建进货单
     * @param purchaseOrder
     * @return
     * @throws BizException 
     */
    Boolean createPurchaseOrder(PurchaseOrderDto purchaseOrder) throws BizException;
    
    /**
     * 
     * @描述：通过主键获取对象
     * @param id
     * @return
     * @return PurchaseOrderDto
     * @exception
     * @createTime：2016年8月31日
     * @author: chenyong
     */
    PurchaseOrderDto selectByPrimaryKey(Integer id);
    /**
     * 
     * @描述：进货单分页查询
     * @param queryCondition 查询条件
     * @return
     * @return ResultPagerModel<PurchaseOrderDto>
     * @exception
     * @createTime：2016年8月26日
     * @author: chenyong
     */
    ResultPagerModel<PurchaseOrderDto> getPageList(QueryOrderConditionDto queryCondition);
    
    /**
     * 
     * @描述：获取分页的ID主键
     * @param queryCondition
     * @return
     * @return List<Integer>
     * @exception
     * @createTime：2016年8月31日
     * @author: chenyong
     */
    List<Integer> getPageIdList(QueryOrderConditionDto queryCondition);
    /**
     * 
     * @描述：获取总的数量
     * @param queryCondition
     * @return
     * @return Integer
     * @exception
     * @createTime：2016年8月31日
     * @author: chenyong
     */
    Integer getTotalCount(QueryOrderConditionDto queryCondition);

    /**
     * 获取未完全发货的商品集合
     * @return
     */
    List<OrderGoodsDto> getGoodsList(Long userId);
}
